An Interprocedural Parallelizing Compiler and Its Support for Memory Hierarchy Research

نویسندگان

  • Trung N. Nguyen
  • Junjie Gu
  • Zhiyuan Li
چکیده

We present several new compiler techniques employed by our interprocedural parallelizing research compiler, Panorama, to improve loop parallelization and the eeciency of memory references. We rst present an overview of the compiler and its associated memory architecture simulation environments. We then present an interprocedural array dataaow analysis, using guarded array regions, for automatic array privatization , an interprocedural static proole analysis, and a graph coloring scheme for parallel task assignment and data allocation which aims at reducing remote memory references while maintaining loop parallelism.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Interprocedural Analysis to Support Static Scheduling of Parallel Loops and Data Allocation

We present an interprocedural program analysis to support static loop scheduling and data allocation with the objective of reducing remote memory references on CC-NUMA multiprocessors. Given a program which consists of parallel regions in the form of DOALL loops and sequential regions, we build an interprocedural control ow graph and annotate it with array reference information. We then constru...

متن کامل

Compiler Analysis for Cache Coherence: Interprocedural Array Data-Flow Analysis and Its Impact on Cache Performance

ÐIn this paper, we present compiler algorithms for detecting references to stale data in shared-memory multiprocessors. The algorithm consists of two key analysis techniques, stale reference detection and locality preserving analysis. While the stale reference detection finds the memory reference patterns that may violate cache coherence, the locality preserving analysis minimizes the number of...

متن کامل

Interprocedural Analysis for Parallelization

This paper presents an extensive empirical evaluation of an interprocedural parallelizing compiler, developed as part of the Stanford SUIF compiler system. The system incorporates a comprehensive and integrated collection of analyses, including privatization and reduction recognition for both array and scalar variables, and symbolic analysis of array subscripts. The interprocedural analysis fra...

متن کامل

Interprocedural Array Data Flow Analysis for Cache Coherence

The presence of procedures and procedure calls introduces side eeects, which complicate the analysis of stale reference detection in compiler-directed cache coherence schemes 4, 3, 9]. Previous compiler algorithms use the invalidation of an entire cache at procedure boundary 5, 8] or inlining 8] to avoid reference marking interprocedurally. However, frequent cache invalidations will result in p...

متن کامل

Llvm: an Infrastructure for Multi-stage Optimization by Chris Arthur Lattner

Modern programming languages and software engineering principles are causing increasing problems for compiler systems. Traditional approaches, which use a simple compile-link-execute model, are unable to provide adequate application performance under the demands of the new conditions. Traditional approaches to interprocedural and profile-driven compilation can provide the application performanc...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995